Python matplotlib设置字体 |
您所在的位置:网站首页 › pyplot 下载 › Python matplotlib设置字体 |
本文作者:Sunny-King 发布时间:2022-08-17 10:39:16 星期三 本文链接:https://www.cnblogs.com/Sunny-King/p/Python-matplotlib_font.html 近期在利用python的matplotlib模块进行数据的可视化,发现对于中文的支持不是很好,并且有些字体达不到所需效果,因此研究了该模块的字体配置。 一、软件版本首先记录下测试使用的python版本和matplotlib的版本 python-3.7.0 matplotlib-2.2.3 import sys import matplotlib print(sys.version) 3.7.0 (default, Jun 28 2018, 13:15:42) [GCC 7.2.0] print(matplotlib.__version__) 2.2.3 二、使用系统已有字体对于系统已经安装的字体可以直接使用,不需要额外安装或者下载,此方法比较简单。 1、导入依赖模块 import matplotlib import matplotlib.pyplot as plt from matplotlib import font_manager 2、查看系统已安装的字体利用函数\(font\_manager.fontManager.ttflist\)列出可以直接使用的字体 font_list = [x.name for x in font_manager.fontManager.ttflist]对于列表中已存在的字体可以根据字体名字直接使用 3、配置局部字体此方法可以更改局部的字体,比如将图片的legend改为Times New Roman字体,其余字体保持不变。 利用字典方法,首先定义一个字体格式字典,在函数种利用关键字传入字体格式 fontdict = {'family': 'Times New Roman', 'size': 15, 'style': 'italic'} plt.legend(loc='best',prop=fontdict)类方法利用\(font\_manager.FontProperties\)实例化一个字体的类。 FontProperties(family=None, style=None, variant=None, weight=None, stretch=None, size=None, fname=None, _init=None) # family: 指定字体类别 # style: 风格 'normal', 'italic' or 'oblique'. # variant: Either 'normal' or 'small-caps' # fname: 指定字体文件的绝对路径 my_font = font_manager.FontProperties(family="STIX", size=20) plt.title("STIX", fontproperties=my_font) 4、配置全局字体如果需要将图片所有字体保持统一,上述方法需要在每个地方都指定字体略显麻烦。下面方法可以设置全局字体,将图片字体保持统一,使用\(matplotlib.pyplot.rcParams\)指定全局字体 plt.rcParams['font.sans-serif']=['STIX'] 三、导入第三方字体对于系统没有安装的字体需要自行下载,然后指定字体文件的方式选择字体。 1、导入字体获取下载的第三方字体的路径,可以从网页下载,这里以本人电脑的华文楷体为例,存放路径为当前路径下的Script,文件名为STKAITI.TTF 2、局部使用利用\(font\_manager.FontProperties\)根据字体文件定义一个字体的类 my_font = font_manager.FontProperties(fname = "Script/STKAITI.TTF")在需要使用该字体的的地方指定为my_font plt.title("使用STKAITI字体", fontproperies=my_font) 3、配置全局首先获取路径下可被识别的字体文件 font_manager.findSystemFonts(fontpaths=["Script"]) # 返回路径下字体文件的列表 font_files = font_manager.findSystemFonts(fontpaths=[font_path]) font_list = font_manager.createFontList(font_files) font_manager.fontManager.ttflist.extend(font_list) plt.rcParams['font.family'] = 'STKaiti' |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |